layui.use(['layer', 'form', 'table', 'admin', 'ax', 'func', 'upload', 'laydate'], function () {
    var $ = layui.$;
    var layer = layui.layer;
    var form = layui.form;
    var table = layui.table;
    var $ax = layui.ax;
    var admin = layui.admin;
    var func = layui.func;
    var upload = layui.upload;
    var laydate = layui.laydate;

    /**
     * 系统管理--消息管理
     */
    var Notice = {
        tableId: "noticeTable"    //表格id
    };

    //渲染时间选择框
    laydate.render({
        elem: '#timeLimit',
        range: true,
        trigger: 'click',
        // max: Feng.currentDate()
    });

    Notice.initColumn = function () {
        return [[
            {field: 'id', align: "left", hide: true, sort: false, title: 'id'},
            {field: 'pid', align: "left", hide: true, sort: false, title: 'pid'},
            {field: 'csqy', align: "left", sort: false, title: '所属区域', width: 90, fixed: true, style: 'text-align: left'},
            {field: 'simpleName', align: "left", sort: false, title: '二级区域', width: 90, fixed: true, style: 'text-align: left'},
            {field: 'yyjlqy', align: "left", sort: false, title: '营运经理区域', width: 110, fixed: true, style: 'text-align: left'},
            {field: 'yytel', align: "left", sort: false, title: '营运经理电话', width: 110,  fixed: true,style: 'text-align: left'},
            {field: 'yyzzfr', align: "left", sort: false, title: '营业执照法人', width: 90,  fixed: true,style: 'text-align: left'},
            {field: 'dd', align: "left", sort: false, title: '督导', width: 80,  fixed: true,style: 'text-align: left'},
            {field: 'ctbh', align: "left", sort: false, title: '妖码', width: 100,  fixed: true,style: 'text-align: left'},
            {field: 'cwm', align: "left", sort: false, title: '财务码', width: 70,  fixed: true,style: 'text-align: left'},
            // {field: 'scmCode', align: "left", sort: false, title: '木瓜编码',width: 180,  fixed: true,style: 'text-align: left'},
            {field: 'shopCode', align: "left", sort: false, title: '木瓜编码',width: 120,  fixed: true,style: 'text-align: left'},
            {field: 'dm', align: "left", sort: false, title: '店名',width: 130,  fixed: true,style: 'text-align: left'},
            {field: 'tiancai', align: "left", sort: false, title: '天财店名', width: 130},
            {field: 'elm', align: "left", sort: false, title: '饿了么店名', width: 130},
            {field: 'mt', align: "left", sort: false, title: '美团店名', width: 130},
            {field: 'yyzzmc', align: "left", sort: false, title: '营业执照名称', width: 130},
            {field: 'shxydm', align: "left", sort: false, title: '社会信用代码', width: 130},
            {field: 'spjyxk', align: "left", sort: false, title: '食品经营许可证截止时间', width: 130},
            {field: 'kysj', align: "left", sort: false, title: '开业时间', width: 130},
            {field: 'ctdh', align: "left", sort: false, title: '餐厅电话', width: 130,edit:'text'},
            {field: 'ctdz', align: "left", sort: false, title: '餐厅地址', width: 393},
            {field: 'fzr', align: "left", sort: false, title: '店长', width: 80,edit:'text'},
            {field: 'lxfs', align: "left", sort: false, title: '联系方式', width: 120,edit:'text'},
            {field: 'ddz', align: "left", sort: false, title: '大店长', width: 80,edit:'text'},
            {field: 'status', align: "left", sort: true, title: '餐厅状态', width: 130,templet: '#statusTpl'},
            {align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 200}
        ]];
    };

    /**
     * 点击清空按钮
     */
    Notice.reset = function () {
        $('input').val('');
    };



    /**
     * 点击查询按钮
     */
    Notice.search = function () {
        var queryData = {};
        queryData['ctbh'] = $("#ctbh").val();
        queryData['dm'] = $("#dm").val();
        queryData['csqy'] = $("#csqy").val();
        queryData['yyjl'] = $("#yyjlqy").val();
        queryData['dd'] = $("#dd").val();
        queryData['timeLimit'] = $("#timeLimit").val();
        queryData['status'] = $("#status").val();
        table.reload(Notice.tableId, {
            where: queryData, page: {curr: 1}
        });
    };

    /**
     * 点击导出按钮
     */
    // Notice.export = function () {
    //     var ajax = new $ax("/btyTxl/export", function (data) {
    //     }, function (data) {
    //     });
    //     ajax.set("ctbh", $("#ctbh").val());
    //     ajax.set("dm", $("#dm").val());
    //     ajax.set("csqy", $("#csqy").val());
    //     ajax.set("yyjl", $("#yyjlqy").val());
    //     ajax.set("dd", $("#dd").val());
    //     ajax.set("timeLimit", $("#timeLimit").val());
    //     const result = ajax.start();
    //     if (result.length === 0) {
    //         Feng.error("请选择要导出的数据");
    //     } else {
    //         table.exportFile(tableResult.config.id, result, 'xls');
    //     }
    // };

    Notice.export = function (data) {
        var ctbh = $("#ctbh").val();
        var dm = $("#dm").val();
        var csqy = $("#csqy").val();
        var yyjl = $("#yyjlqy").val();
        var dd = $("#dd").val();
        var timeLimit = $("#timeLimit").val();
        var status = $("#status").val();
        //获取导出Excel的数据
        var url = Feng.ctxPath + "/btyTxl/export?ctbh=" + ctbh + "&dm=" + dm + "&csqy=" + csqy + "&yyjl=" + yyjl + "&dd=" + dd + "&timeLimit=" + timeLimit + "&status=" + status;
        location.href = url;
    };

    // 修改user状态
    form.on('switch(status)', function (obj) {
        var id = obj.elem.value;
        var checked = obj.elem.checked ? true : false;

        Notice.changeUserStatus(id, checked);
    });

    //开/关店状态修改
    // checked 是否选中（true,false），选中就是开店，未选中就是关店
    Notice.changeUserStatus = function (id, checked) {
        if (checked) {
            var ajax = new $ax(Feng.ctxPath + "/btyTxl/updateStatus", function (data) {
                Feng.success("开店!");
            }, function (data) {
                Feng.error("解除冻结失败!");
                table.reload(Notice.tableId);
            });
            ajax.set("id", id);
            ajax.set("status", 1);
            ajax.start();
        } else {
            var ajax = new $ax(Feng.ctxPath + "/btyTxl/updateStatus", function (data) {
                Feng.success("已关店!");
            }, function (data) {
                Feng.error("冻结失败!" + data.responseJSON.message + "!");
                table.reload(Notice.tableId);
            });
            ajax.set("id", id);
            ajax.set("status", 0);
            ajax.start();
        }
    };

    // 清空按钮点击事件
    $('#btnReset').click(function () {
        Notice.reset();
    });

    // 搜索按钮点击事件
    $('#btnSearch').click(function () {
        Notice.search();
    });

    // 导出通讯录
    $('#btnExport').click(function () {
        Notice.export();
    });

    /**
     * 导入Excel
     */
    upload.render({
        elem: '#btnExcel'
        , url: '/btyTxl/import'
        , accept: "file"
        , async: false
        , exts: 'xls|xlsx|xlsm|xlt|xltx|xltm'
        , done: function (res) {
            // if (res.state == 0) {
            //     layer.msg('导入失败！', {icon: 1, time: 2000, shade: 0.2});
            // }
            if (res == true) {
                layer.msg('导入成功！', {icon: 1, time: 2000, shade: 0.2}, function () {
                    window.location.reload();
                });
            }else {
                layer.msg('导入失败！请检查表格中日期格式是否正确！', {icon: 1, time: 2000, shade: 0.2});
            }
        },
    });

    /**
     * 弹出添加餐厅通知
     */
    Notice.openAddNotice = function () {
        func.open({
            height: 800,
            title: '添加餐厅',
            content: Feng.ctxPath + '/btyTxl/btyTxl_addct',
            tableId: Notice.tableId
        });
    };

    /**
     * 弹出添加负责人通知
     */
    Notice.openAddNotice2 = function () {
        func.open({
            height: 600,
            title: '添加负责人',
            content: Feng.ctxPath + '/btyTxl/btyTxl_addfzr',
            tableId: Notice.tableId
        });
    };

    /**
     * 点击删除通知
     *
     * @param data 点击按钮时候的行数据
     */
    Notice.onDeleteNotice = function (data) {

        var operation = function () {
            var id = data.id;
            var ajax = new $ax(Feng.ctxPath + "/btyTxl/delete", function (data) {
                Feng.success("删除成功!");
                table.reload(Notice.tableId);
            });
            ajax.set("id", data.id);
            ajax.start();
        };
        Feng.confirm("是否删除本店及其负责人信息 ?", operation);
    };

    /**
     * 点击查看明细数据
     */
    Notice.onViewNotice = function (data) {
        func.open({
            height: 980,
            title: '负责人明细',
            content: Feng.ctxPath + "/btyTxl/btyTxl_view/" + data.id,
            tableId: Notice.tableId
        });
    };

    //监听单元格编辑
    table.on('edit(noticeTable)', function(obj){
        //得到修改后的值
        var value = obj.value //得到修改后的值
            ,data = obj.data //得到所在行所有键值
            ,field = obj.field; //得到字段
        $.ajax({
            type: "PUT",
            url: "/btyTxl/editPerson",
            datatype: "json",
            data: data,
            success: function (date) {
                table.reload(noticeTable.tableId);
            }, error: function () {
            }, complete: function (XHR, TS) { }
        });
    });

    /**
     * 点击修改
     *
     * @param data 点击按钮时候的行数据
     */
    Notice.onEditNotice = function (data) {
        func.open({
            height: 980,
            title: '修改',
            content: Feng.ctxPath + "/btyTxl/btyTxl_update/" + data.id,
            tableId: Notice.tableId
        });

    };


    /**
     * 点击同步店长
     */
    Notice.btnEditDzNotice = function (data) {
        $.ajax({
            type: "PUT",
            url: "/btyTxl/updateDz",
            datatype: "json",
            data: data,
            success: function (data) {
                table.reload(Notice.tableId);
                Feng.success("同步完成！")
            }, error: function () {
                Feng.error("修改失败！");
            }
        });
    };

    /**
     * 点击同步营运架构
     * @param data
     */
    Notice.btnEditYyNotice = function (data) {
        $.ajax({
            type: "PUT",
            url: "/btyTxl/updateYy",
            datatype: "json",
            data: data,
            success: function (data) {
                table.reload(Notice.tableId);
                Feng.success("同步完成！")
            }, error: function () {
                Feng.error("修改失败！");
            }
        });
    };

    /**
     * 更新财务码
     * @param data
     */
    Notice.btnCwmNotice = function (data) {
        $.ajax({
            type: "PUT",
            url: "/btyTxl/updateCwm",
            datatype: "json",
            data: data,
            success: function (data) {
                table.reload(Notice.tableId);
                Feng.success("同步完成！")
            }, error: function () {
                Feng.error("修改失败！");
            }
        });
    };

    /**
     * 同步外卖店名
     * @param data
     */
    Notice.btnWmDmNotice = function (data) {
        $.ajax({
            type: "PUT",
            url: "/btyTxl/editWmDm",
            datatype: "json",
            data: data,
            success: function (data) {
                table.reload(Notice.tableId);
                Feng.success("同步完成！")
            }, error: function () {
                Feng.error("修改失败！");
            }
        });
    };

    // 渲染表格
    var tableResult = table.render({
        elem: "#" + Notice.tableId,
        url: Feng.ctxPath + '/btyTxl/list',
        page: true,
        cellMinWidth: 100,
        limit: 20,
        height: "full-145",
        cols: Notice.initColumn(),
        where: {status: $('#status').val()}
    });

    // 添加餐厅
    $('#btnAddct').click(function () {
        Notice.openAddNotice();
    });
    //添加负责人
    $('#btnAddfzr').click(function () {
        Notice.openAddNotice2();
    });
    //同步店长
    $('#btnEditDz').click(function () {
        Notice.btnEditDzNotice();
    });

    //同步营运架构
    $('#btnEditYy').click(function () {
        Notice.btnEditYyNotice();
    });

    //更新财务码
    $('#btnCwm').click(function () {
        Notice.btnCwmNotice();
    });

    //同步外卖店名
    $('#btnWmDm').click(function () {
        Notice.btnWmDmNotice();
    });

    // 工具条点击事件
    table.on('tool(' + Notice.tableId + ')', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;
        if (layEvent === 'edit') {
            Notice.onEditNotice(data);
        } else if (layEvent === 'delete') {
            Notice.onDeleteNotice(data);
        } else if (layEvent === 'view') {
            Notice.onViewNotice(data);
        }
    });
});